'''
   自动取款机存取款系统
   1，客户信息数据源
   2，登陆
   3. 取钱
   4，存钱
   5. 退出
   6. 交互界面
'''


# 1.创建客户信息管理库

cust_list=[
    {'username':'zhangsan','password':'123456','money':101000},
    {'username':'lisi','password':'123456','money':100},
    {'username':'wangwu','password':'123456','money':1200},
    {'username':'zhaoliu','password':'123456','money':45000}]


# 2.定义一个获取用户ID的函数
def check_cust(cust_name):
    # 遍历数据库，cust是字典格式
    for cust in cust_list:
        if cust_name == cust['username']:
            uid = cust_list.index(cust)
            return uid

# 定义一个验证用户名和密码的函数
def check_login(cust_name,password):
    # 遍历数据库，对应用户名的密码
    for cust in cust_list:
        if cust_name == cust['username'] and password == cust['password']:
            return True

# 3,定义一个取款函数
def draw_money(uid):
    money = input('请输入金额：')
    while not money.isdigit():
        money = input('输入错误，请重新输入要取出金额：')
    # 判断输入金额是否小于存款
    if int(money) <= cust_list[uid]['money']:
        # 减款
        cust_list[uid]['money'] -= int(money)
        print('-' * 30)
        print('操作成功！此次取款：{:.2f} 元，您的余额为：{:.2f} 元'.format(int(money), cust_list[uid]['money']))
        print('-' * 30)
    else:
        print('-' * 30)
        print('您的余额为：{:.2f} 元，不足{:.2f}元，请重新操作！'.format(cust_list[uid]['money'], int(money)))
        print('-' * 30)
        return

# 4,定义一个存款函数
def save_money(uid):
    money = input('请输入存款金额：')
    while not money.isdigit():
        money = input('输入错误，请重新输入要存入金额：')
    cust_list[uid]['money'] += int(money)
    print('-' * 30)
    print('操作成功！此次存入：{:.2f} 元，您的余额为：{:.2f} 元'.format(int(money), cust_list[uid]['money']))
    print('-' * 30)

# 5.退出系统
def logOut():
    pass

# 6.综合界面和交互
while True:
    # 输出初始界面
    print('='*20+'欢迎来到自助存取款机'+'='*20)
    cust_name = input('请输入用户名: ')
    uid = check_cust(cust_name)
    if uid+1:
        password = input('请输入你的密码：')
        # 密码正确
        if check_login(cust_name, password):
            print('-' * 20)
            print('登陆成功！')
            print('-' * 20)
            input('按确定键继续')
            while True:
                print('=' * 20 + '欢迎使用自助存取款系统' + '=' * 20)
                print(' ' * 20 + '*' + '您好 %s' % cust_list[uid]['username'] + '*' + ' ' * 20)
                print('''
                         1.查询
                         2.取款
                         3.存入
                         4.登出
                         ''')
                choice = input('请输入指令：')
                # 查询
                if choice == '1':
                    print('-' * 20)
                    print('您的余额为：{:.2f} 元'.format(cust_list[uid]['money']))
                    print('-' * 20)
                    input('按确定键返回主菜单')
                # 取款
                elif choice == '2':
                    draw_money(uid)
                    input('按确定键返回主菜单')
                # 存入
                elif choice == '3':
                    save_money(uid)
                    input('按确定键返回主菜单')
                # 登出当前账号
                elif choice == '4':
                    logOut()
                    print('-' * 25)
                    print('当前帐号登出成功！')
                    print('-' * 25)
                    input('按确定键返回主菜单')
                    break
                else:
                # 指令输入错误
                    print('-' * 25)
                    print('指令错误，请重新输入！')
                    print('-' * 25)

        else:  # 密码错误
                print('-' * 25)
                print('密码错误，请重新登陆！')
                print('-' * 25)

    else:  # 账号不存在
                print('-' * 25)
                print('账号不存在，请重新输入！')
                print('-' * 25)